<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2020/5/18
 * Time: 14:22
 */



use GuzzleHttp\Client;




/***
 *  记录日志文件
 * @param $path 文件路径
 * @param $log  日志数据
 * @param int $size 日志文件大小
 */
function journalFile($path , $log , $size = 3){

    $logs = '[' . date('Y-m-d H:i:s') . '] ' . $log . "\r\n";
    $file = $path . date('Ymd') . '/';

    // 不是目录，创建一个
    if (!file_exists($file)){
        Directory($file , 0755);
    }
    // 设置文件目录
    $filepath = $file . date('Ymd') . '.log';
    // 判断文件大小
    judgeFileSize($filepath , $size);
    // 写入数据
    file_put_contents($filepath, $logs, FILE_APPEND);
    // 这里也可以直接用Log::info() 里的函数，只是这样会和其他调试信息掺在一起。
    // 如果要用Log里的函数，别忘记了引入Log类。
}


/***
 * 判断文件大小
 * @param $fiel 文件目录，
 * @param $size 设定日志文件大小
 */
function judgeFileSize($fiel , $size){

    if (!file_exists($fiel)) return ;

    $fileSize = filesize($fiel); // 获取文件大小

    // 把文件大小设置成 M ,如果大于M 就拷贝一份,在删除文件
    if (round($fileSize / 1024 * 100) / 1024 > $size){
        copy($fiel , $fiel.'_'. date('His'));
        unlink($fiel);
    }
}


/***
 *  递归创建目录
 * @param $dir  创建文件目录
 * @param $chmod  目录权限
 */
function Directory($dir , $chmod){
    if(is_dir($dir) || @mkdir($dir,$chmod)){ //查看目录是否已经存在或尝试创建，加一个@抑制符号是因为第一次创建失败，会报一个“父目录不存在”的警告。
        //echo $dir."创建成功<br>";  //输出创建成功的目录
    }else{
        $dirArr = explodeString('/',$dir); //当子目录没创建成功时，试图创建父目录，用explode()函数以'/'分隔符切割成一个数组
        array_pop($dirArr); //将数组中的最后一项（即子目录）弹出来，
        $newDir = implode('/',$dirArr); //重新组合成一个文件夹字符串
        Directory($newDir , $chmod); //试图创建父目录
        if(@mkdir($dir,$chmod)){
            //echo $dir."创建成功<br>";
        } //再次试图创建子目录,成功输出目录名
    }
}


/***
 * 物流信息查询
 * @param $number 快递单号
 */
function LogisticsQuery($number){
    $http = new Client([
        'timeout'  => 30.0,// 最多执行7秒
    ]);

    $urls = "https://www.kuaidi100.com/autonumber/autoComNum?resultv2=1&text=" . $number; //查询单号是那家快递
    $rurl = $http->get($urls);   //发送，查询数据

    $print = GuzzleGEtBody($rurl); //获取到那家快递之后 转换成数组

    $url = "http://www.kuaidi100.com/query?type=". $print['auto'][0]['comCode'] ."&postid=". $number ."&temp=" . rand();
    $request = $http->get($url);

    return GuzzleGEtBody($request); //打印
}




/***
 * @param $symbol 分割符号
 * @param $string 分割字符串
 * @return array|void 字符串分割成 一个数组
 */
function explodeString($symbol , $string){

    return explode($symbol , $string);
}


/**
 *  获取请求后的实体数据
 * @param $res 传入请求回来的数据
 * @return mixed|void
 */
function GuzzleGEtBody($res){

    return json_decode($res->getBody(), true);
}